package com.bbcare.followup.plat.store.ibatis;

import java.util.List;
import java.util.Map;

/**
 * 患者操作历史数据操作接口
 * 
 * @author tao
 *
 */
public interface IPatientOperationRecordDAO {

    // 查询队列患者活跃
    List<Map<String, Object>> selectByConditon(Map<String, Object> paramMap) throws Exception;

    // 保存操作记录
    int saveOperationRecord(Map<String, Object> map) throws Exception;

    // 查询队列患者活跃总数
    int CountByConditon(Map<String, Object> map) throws Exception;

    // 查询相关统计数据（今日建档，今日新增等）
    int selectCountByConditon(Map<String, Object> map) throws Exception;

    // 今日门诊记录
    List<Map<String, Object>> selectCompleteDoorToday(Map<String, Object> paramMap) throws Exception;

    // 今日随访系统和门诊系统今日门诊记录
    List<Map<String, Object>> selectCompleteDoorTodayAll(Map<String, Object> paramMap) throws Exception;
    
    // 操作记录查询，如线上主诉登记记录等
    List<Map<String, Object>> listIaOperate(Map<String, Object> paramMap) throws Exception;

    // 今日门诊统计
    int countCompleteDoorToday(Map<String, Object> paramMap) throws Exception;
    
    // 今日随访系统和门诊系统
    int countCompleteDoorTodayAll(Map<String, Object> paramMap) throws Exception;
    
    // 操作记录统计，如线上主诉登记记录等
    int countIaOperate(Map<String, Object> paramMap) throws Exception;

    // 患者主页查询相关医生信息
    List<Map<String, Object>> selectActiveDoctors(Map<String, Object> paramMap) throws Exception;

    // 医生主页 查询本周活跃患者数量
    int CountActivePatientByWeek(Map<String, Object> paramMap) throws Exception;

    // 医生主页 活跃患者数量按日统计
    List<Map<String, Object>> countActivePatientTrendByDay(Map<String, Object> paramMap) throws Exception;

    // 医生主页 活跃患者数量按月统计
    List<Map<String, Object>> countActivePatientTrendByMonth(Map<String, Object> paramMap) throws Exception;

    // 微信用户月度评估
    List<Map<String, Object>> selectOperationByUserId(Map<String, Object> paramMap) throws Exception;

    // 随访评估量表记录统计
    int countPtFuAssess(Map<String, Object> paramMap) throws Exception;

    // 随访评估量表记录list
    List<Map<String, Object>> listPtFuAssess(Map<String, Object> paramMap) throws Exception;

    // 生物样本采集记录统计
    int countPtBioSample(Map<String, Object> paramMap) throws Exception;

    // 生物样本采集记录list
    List<Map<String, Object>> listPtBioSample(Map<String, Object> paramMap) throws Exception;

    // 操作记录统计，如线上主诉记录+门诊记录等
    int countIaOperateByUnion(Map<String, Object> paramMap) throws Exception;

    // 操作记录查询，如线上主诉记录+门诊记录等
    List<Map<String, Object>> listIaOperateByUnion(Map<String, Object> paramMap) throws Exception;
    
    // 孕妇问卷提交记录查询
    List<Map<String, Object>> selectOperationByCondition(Map<String, Object> paramMap) throws Exception;

}
